<?php
class Crawler {

    /**
     * Przechowuje strone
     *
     * @var string
     */
    protected $markup = '';

    public function __construct($url) {
        $this->markup = $this->getMarkup($url);
    }

    /**
     * zwraca markup
     *
     * @param <type> $uri
     * @return <type>
     */
    public function getMarkup($uri) {
        return file_get_contents($uri);
    }

    /**
     * Pobiera odpowiedni element strony
     *
     * @param string $type
     * @return mixed
     */
    public function get($type) {
        $method = "_get_{$type}";
        if (method_exists($this, $method)){
            return call_user_method($method, $this);
        }
    }

    /**
     * Pobiera obrazki
     *
     * @return array()
     */
    protected function _get_images() {
        if (!empty($this->markup)){
            preg_match_all('/<img([^>]+)\/>/i', $this->markup, $images);
            return !empty($images[1]) ? $images[1] : FALSE;
        }
    }
    /**
     *Pobieranie objecta
     *
     * @return array()
     */
    protected function _get_object() {
        if (!empty($this->markup)){
            preg_match_all('/<embed([^>]+)\>(.*?)\<\/embed\>/i', $this->markup, $objects);
            return !empty($objects[1]) ? $objects[1] : FALSE;
        }
    }

    /**
     * Pobiera linki
     *
     * @return array()
     */
    protected function _get_links() {
        if (!empty($this->markup)){
            preg_match_all('/<a([^>]+)\>(.*?)\<\/a\>/i', $this->markup, $links);
            return !empty($links[1]) ? $links[1] : FALSE;
        }
    }

}
?>

